package classign.election.kingvar.come.electionclasssign.greendao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import classign.election.kingvar.come.electionclasssign.greendao.MemberClock;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectFirdayInfo;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectInfo;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectSaturdayInfo;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectSundayInfo;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectTuesdayInfo;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectTursdayInfo;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectWednesdayInfo;
import classign.election.kingvar.come.electionclasssign.greendao.StudentInfo;
import classign.election.kingvar.come.electionclasssign.greendao.table.NewsTypeInfo;

import classign.election.kingvar.come.electionclasssign.greendao.MemberClockDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectFirdayInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectSaturdayInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectSundayInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectTuesdayInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectTursdayInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.ProjectWednesdayInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.StudentInfoDao;
import classign.election.kingvar.come.electionclasssign.greendao.NewsTypeInfoDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig memberClockDaoConfig;
    private final DaoConfig projectFirdayInfoDaoConfig;
    private final DaoConfig projectInfoDaoConfig;
    private final DaoConfig projectSaturdayInfoDaoConfig;
    private final DaoConfig projectSundayInfoDaoConfig;
    private final DaoConfig projectTuesdayInfoDaoConfig;
    private final DaoConfig projectTursdayInfoDaoConfig;
    private final DaoConfig projectWednesdayInfoDaoConfig;
    private final DaoConfig studentInfoDaoConfig;
    private final DaoConfig newsTypeInfoDaoConfig;

    private final MemberClockDao memberClockDao;
    private final ProjectFirdayInfoDao projectFirdayInfoDao;
    private final ProjectInfoDao projectInfoDao;
    private final ProjectSaturdayInfoDao projectSaturdayInfoDao;
    private final ProjectSundayInfoDao projectSundayInfoDao;
    private final ProjectTuesdayInfoDao projectTuesdayInfoDao;
    private final ProjectTursdayInfoDao projectTursdayInfoDao;
    private final ProjectWednesdayInfoDao projectWednesdayInfoDao;
    private final StudentInfoDao studentInfoDao;
    private final NewsTypeInfoDao newsTypeInfoDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        memberClockDaoConfig = daoConfigMap.get(MemberClockDao.class).clone();
        memberClockDaoConfig.initIdentityScope(type);

        projectFirdayInfoDaoConfig = daoConfigMap.get(ProjectFirdayInfoDao.class).clone();
        projectFirdayInfoDaoConfig.initIdentityScope(type);

        projectInfoDaoConfig = daoConfigMap.get(ProjectInfoDao.class).clone();
        projectInfoDaoConfig.initIdentityScope(type);

        projectSaturdayInfoDaoConfig = daoConfigMap.get(ProjectSaturdayInfoDao.class).clone();
        projectSaturdayInfoDaoConfig.initIdentityScope(type);

        projectSundayInfoDaoConfig = daoConfigMap.get(ProjectSundayInfoDao.class).clone();
        projectSundayInfoDaoConfig.initIdentityScope(type);

        projectTuesdayInfoDaoConfig = daoConfigMap.get(ProjectTuesdayInfoDao.class).clone();
        projectTuesdayInfoDaoConfig.initIdentityScope(type);

        projectTursdayInfoDaoConfig = daoConfigMap.get(ProjectTursdayInfoDao.class).clone();
        projectTursdayInfoDaoConfig.initIdentityScope(type);

        projectWednesdayInfoDaoConfig = daoConfigMap.get(ProjectWednesdayInfoDao.class).clone();
        projectWednesdayInfoDaoConfig.initIdentityScope(type);

        studentInfoDaoConfig = daoConfigMap.get(StudentInfoDao.class).clone();
        studentInfoDaoConfig.initIdentityScope(type);

        newsTypeInfoDaoConfig = daoConfigMap.get(NewsTypeInfoDao.class).clone();
        newsTypeInfoDaoConfig.initIdentityScope(type);

        memberClockDao = new MemberClockDao(memberClockDaoConfig, this);
        projectFirdayInfoDao = new ProjectFirdayInfoDao(projectFirdayInfoDaoConfig, this);
        projectInfoDao = new ProjectInfoDao(projectInfoDaoConfig, this);
        projectSaturdayInfoDao = new ProjectSaturdayInfoDao(projectSaturdayInfoDaoConfig, this);
        projectSundayInfoDao = new ProjectSundayInfoDao(projectSundayInfoDaoConfig, this);
        projectTuesdayInfoDao = new ProjectTuesdayInfoDao(projectTuesdayInfoDaoConfig, this);
        projectTursdayInfoDao = new ProjectTursdayInfoDao(projectTursdayInfoDaoConfig, this);
        projectWednesdayInfoDao = new ProjectWednesdayInfoDao(projectWednesdayInfoDaoConfig, this);
        studentInfoDao = new StudentInfoDao(studentInfoDaoConfig, this);
        newsTypeInfoDao = new NewsTypeInfoDao(newsTypeInfoDaoConfig, this);

        registerDao(MemberClock.class, memberClockDao);
        registerDao(ProjectFirdayInfo.class, projectFirdayInfoDao);
        registerDao(ProjectInfo.class, projectInfoDao);
        registerDao(ProjectSaturdayInfo.class, projectSaturdayInfoDao);
        registerDao(ProjectSundayInfo.class, projectSundayInfoDao);
        registerDao(ProjectTuesdayInfo.class, projectTuesdayInfoDao);
        registerDao(ProjectTursdayInfo.class, projectTursdayInfoDao);
        registerDao(ProjectWednesdayInfo.class, projectWednesdayInfoDao);
        registerDao(StudentInfo.class, studentInfoDao);
        registerDao(NewsTypeInfo.class, newsTypeInfoDao);
    }
    
    public void clear() {
        memberClockDaoConfig.clearIdentityScope();
        projectFirdayInfoDaoConfig.clearIdentityScope();
        projectInfoDaoConfig.clearIdentityScope();
        projectSaturdayInfoDaoConfig.clearIdentityScope();
        projectSundayInfoDaoConfig.clearIdentityScope();
        projectTuesdayInfoDaoConfig.clearIdentityScope();
        projectTursdayInfoDaoConfig.clearIdentityScope();
        projectWednesdayInfoDaoConfig.clearIdentityScope();
        studentInfoDaoConfig.clearIdentityScope();
        newsTypeInfoDaoConfig.clearIdentityScope();
    }

    public MemberClockDao getMemberClockDao() {
        return memberClockDao;
    }

    public ProjectFirdayInfoDao getProjectFirdayInfoDao() {
        return projectFirdayInfoDao;
    }

    public ProjectInfoDao getProjectInfoDao() {
        return projectInfoDao;
    }

    public ProjectSaturdayInfoDao getProjectSaturdayInfoDao() {
        return projectSaturdayInfoDao;
    }

    public ProjectSundayInfoDao getProjectSundayInfoDao() {
        return projectSundayInfoDao;
    }

    public ProjectTuesdayInfoDao getProjectTuesdayInfoDao() {
        return projectTuesdayInfoDao;
    }

    public ProjectTursdayInfoDao getProjectTursdayInfoDao() {
        return projectTursdayInfoDao;
    }

    public ProjectWednesdayInfoDao getProjectWednesdayInfoDao() {
        return projectWednesdayInfoDao;
    }

    public StudentInfoDao getStudentInfoDao() {
        return studentInfoDao;
    }

    public NewsTypeInfoDao getNewsTypeInfoDao() {
        return newsTypeInfoDao;
    }

}
